# -*- coding: utf-8 -*-
"""
---------------------------------------
@File    ：custom_log.py
@Author  ：liyunhui
@Date    ：2024/7/2 下午3:24
@explain : 统一的日志模块
---------------------------------------
"""
import os
import logging
import logging.handlers


def create_logging(log_name):
    """
    自定义日志模块
    :return:
    """
    # 自定义存储目录
    log_dir = "log"
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)

    # 自定义日志文件名称
    log_filename = os.path.join(log_dir, f"{log_name}.log")

    # 创建一个TimedRotatingFileHandler，指定编码为utf-8
    handler = logging.handlers.TimedRotatingFileHandler(
        filename=log_filename,
        when='midnight',  # 每天0时自动构建新日志文件
        interval=1,
        backupCount=15,  # 保留15天的日志，超过则自动删除
        encoding='utf-8'  # 指定编码为utf-8
    )
    # 设置日志文件后缀格式
    handler.suffix = "%Y-%m-%d"
    # 创建一个日志格式化器
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s')
    # 将格式化器添加到处理器
    handler.setFormatter(formatter)
    # 创建一个新的日志记录器
    cus_logger = logging.getLogger(log_name)
    cus_logger.setLevel(logging.INFO)
    # 如果记录器没有处理器，则添加处理器
    if not cus_logger.handlers:
        cus_logger.addHandler(handler)
    return cus_logger
